<?php

/**
* Class này phục vụ việc chuyển đổi 1 thuộc tính kiểu SET của MySQL giữa dạng string của MySQL và dạng array của PHP
* 	1. ActiveRecord sẽ cấu hình một danh sách các field kiểu SET {@link $fields}
* 
* @author Tarzan <hocdt85@gmail.com>
*/
class SETFieldBehavior extends CActiveRecordBehavior
{
	public $fields = array();
	
	/**
	* @inheritdoc
	*/
	function beforeSave($event)
	{
		foreach ($this->fields as $f) {
			$x = $event->sender->$f;
			echo '<pre>', print_r($x, true), '</pre>';
			$x = is_array($x) ? implode(',', $x) : '';
			$event->sender->$f = $x;
			echo '<pre>', print_r($x, true), '</pre>';
		}
		
		return true;
	}
	
	/**
	* @inheritdoc
	*/
	function afterSave($event)
	{
		foreach ($this->fields as $f) {
			$event->sender->$f=explode(',', $this->getOwner()->$f);
		}
	}
	
	/**
	* @inheritdoc
	*/
	function afterFind($event)
	{
		foreach ($this->fields as $f) $event->sender->$f=explode(',', $this->getOwner()->$f);
	}
}